/*
 * EntityAttribute.java - Copyright May 11, 2012 Z Networks Group, Inc. All rights reserved.
 * Z Networks Group PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */
package com.andromeda.skadi.entity;

import com.andromeda.skadi.entity.attribute.Attribute;
import java.io.Serializable;

/**
 *
 * @author Dickinson Roman Arismendy Torres
 */
public class EntityAttribute<T extends Serializable> {

    private boolean nullable;
    private String name;
    private boolean primaryKey;
    private Attribute<T> value;
    private boolean calculated;

    public boolean isNullable() {
        return nullable;
    }

    public boolean isPrimaryKey() {
        return primaryKey;
    }

    public Attribute<T> getValue() {
        return value;
    }

    /**
     * Un atributo calculado es aquel que puede ser calculado usando {@link Attribute atributos}
     * de la misma entidad, estos atributos no son persistentes y solo se
     * presentan para facilitar el acceso.
     *
     * @return
     * <code>true</code> si el atributo es calculado.
     */
    public final boolean isCalculated() {
        return calculated;
    }
}
